package com.wande.dataplatform.filecollection.validation;

import com.wande.dataplatform.filecollection.domain.dto.ValidationError;

/**
 * 校验规则接口
 * 定义数据质量校验规则的统一接口
 *
 * @author wande
 */
public interface IValidationRule {

    /**
     * 获取规则类型
     *
     * @return 规则类型
     */
    String getRuleType();

    /**
     * 校验数据
     *
     * @param fieldName 字段名
     * @param value 字段值
     * @param ruleConfig 规则配置（JSON格式）
     * @return 校验错误，如果校验通过返回null
     */
    ValidationError validate(String fieldName, Object value, String ruleConfig);

    /**
     * 校验规则配置是否有效
     *
     * @param ruleConfig 规则配置
     * @return 是否有效
     */
    boolean isValidConfig(String ruleConfig);
}
